package com.zjd.association.service;

import com.zjd.association.common.PageWrapper;
import com.zjd.association.entity.Notices;
import com.zjd.association.service.base.BaseService;

import java.util.List;


/**
 * 通知记录 服务层
 *
 * @author: zjd
 * @date: 2024-5-22
 */
public interface NoticesService extends BaseService<Notices, String> {

    /**
     * 获取系统发布的通知信息
     *
     * @return 通知信息列表
     */
    List<Notices> getSysNotices();

    /**
     * 获取活动管理员相关的通知信息
     *
     * @param manId 活动管理员ID
     * @return 通知信息列表
     */
    List<Notices> getManNotices(String manId);

    /**
     * 获取活动成员相关通知信息
     *
     * @param memId 活动成员ID
     * @return 通知信息列表
     */
    List<Notices> getMemNotices(String memId);

    /**
     * 分页查询通知记录信息
     *
     * @param pageIndex 当前页码
     * @param pageSize  每页数据量
     * @param title     通知标题
     * @param teamName  活动名称
     * @return 通知信息列表
     */
    PageWrapper getPageAll(Long pageIndex, Long pageSize, String title, String teamName);

    /**
     * 分页查询指定用户相关通知记录信息
     *
     * @param pageIndex 当前页码
     * @param pageSize  每页数据量
     * @param userId    用户ID
     * @param title     通知标题
     * @param teamName  活动名称
     * @return 通知信息列表
     */
    PageWrapper getPageById(Long pageIndex, Long pageSize, String userId, String title, String teamName);

}